const express = require('express') //1.引入express
const router = express.Router() //2.引入路由
const { db, genid } = require('../db/DbUtils') //引入雪花id和数据库
const { v4: uuidv4 } = require('uuid') // 生成uid(唯一标识符)生成验证登录成功的token,搜索node uuid可以看到很多教程
// 版本 4：基于随机数的 UUID

// 如果前端再次传token发现数据库没有token，则说明用户没有登录
router.post('/login', async (req, res) => {
  //前端传给服务端是req请求
  let { account, password } = req.body
  let { err, rows } = await db.async.all(
    'select * from `admin` where `account` =? And `password` = ?',
    [account, password]
  ) //这里顺序不能写反，不然赋值会有问题
  if (err == null && rows.length > 0) {
    //如果没有报错
    let login_token = uuidv4() //自动生成uuid标识符
    let update_token_sql = 'UPDATE `admin` SET `token` = ? where `id` = ?'
    await db.async.run(update_token_sql, [login_token, rows[0].id]) //把token写到后端
    let admin_info = rows[0]
    admin_info.token = login_token //前端保留一个token
    admin_info.password = '' //密码置空不返回
    res.send({
      code: 200,
      msg: '登录成功',
      data: admin_info, //返回还给前端
    })
  } else {
    res.send({
      code: 500,
      msg: '登录失败',
    })
  }
})

module.exports = router //3.导出路由
